package Easy;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
//        给你一个字符串 s，请你返回 两个相同字符之间的最长子字符串的长度 ，
//        计算长度时不含这两个字符。如果不存在这样的子字符串，返回 -1 。
//        子字符串 是字符串中的一个连续字符序列。

public class Colustion1624 {
    public int maxLengthBetweenEqualCharacters(String s) {
        Map<Character, Integer[]> map = new HashMap<Character, Integer[]>();
        for (int i = 0; i < s.length(); i++) {
            char ch = s.charAt(i);
            if (map.containsKey(ch)) {
                if (map.get(ch)[1] == -1)
                    map.get(ch)[1] = i;
                else {
//                    if (map.get(ch)[1] - map.get(ch)[0] < i - map.get(ch)[0]) {
//                        map.get(ch)[0] = map.get(ch)[1];
//                        map.get(ch)[1] = i;
//                    }
                    if(i>map.get(ch)[1])
                        map.get(ch)[1]=i;
                }
            } else {
                map.put(ch, new Integer[]{i, -1});
            }
        }
//        Collection<Integer[]> values = map.values();
        int max = -1;

        for (Integer[] value : map.values()) {
            if (value[1] != -1 && value[1] - value[0] > max)
                max = value[1] - value[0];
        }

        return max==-1?max:max-1;
    }

    public static void main(String[] args) {
        Colustion1624 colustion1624 = new Colustion1624();
        int max = colustion1624.maxLengthBetweenEqualCharacters("mgntdygtxrvxjnwksqhxuxtrv");
        System.out.println(max);
    }
}
